<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;

class Product extends Model
{
   protected $fillable = [
       'title', 'description', 'image', 'on_sale', 'rating', 'sold_count', 'review_count', 'price'
   ];
   protected $casts = [
       'on_sale'=>'boolean',//是一个布尔类型的字段
   ];

    /**
     * 与商品sku的关系是 一对多的关系
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
   public function skus()
   {
       return $this->hasMany(ProductSku::class);
   }
   public function getImageUrlAttribute()
   {
       // 如果 image 字段本身就已经是完整的 url 就直接返回
       //Laravel 的模型访问器会自动把下划线改为驼峰，所以 image_url 对应的就是 getImageUrlAttribute
       if(Str::startsWith($this->attributes['image'],['http://','https://'])){
           return $this->attributes['image'];
       }
       //这里 \Storage::disk('public') 的参数 public 需要和我们在 config/admin.php 里面的 upload.disk 配置一致。
       return \Storage::disk('public')->url($this->attributes['image']);
   }
}
